package com.xigua.字符串;

import com.xigua.util.StringUtils;

import java.util.Map;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的，并且以前按照一些自定义的顺序排序。
 *对 s 的字符进行置换，使其与排序的 order 相匹配。更具体地说，如果在 order 
 * 中的字符 x 出现字符 y 之前，那么在排列后的字符串中， x 也应该出现在 y 之前。
 *返回 满足这个性质的 s 的任意排列 。
 *
 * @date 2022/3/323:47
 */
public class _791_自定义字符串排序 {

    public String customSortString(String order, String s) {
        Map<Character, Integer> map = StringUtils.countChar(s);
        StringBuffer ans = new StringBuffer();
        for (int i = 0; i < order.length(); i++) {
            char c = order.charAt(i);
            if (map.containsKey(c)){
                for (Integer integer = 0; integer < map.get(c); integer++) {
                    ans.append(c);
                }
                map.remove(c);
            }
        }
        for (Character character : map.keySet()) {
            for (Integer i = 0; i < map.get(character); i++) {
                ans.append(character);
            }
        }
        return ans.toString();
    }
}
